package com.yh.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author by 张晨光
 * @date 2024/1/17 16:29
 *
 *
 * 转发和重定向的时候，谁节省资源；转发；
 *      发请求，服务器内部，跳转；
 *      重定向：给客户端，客户端再给服务器发请求;
 */
@Controller
public class PageChangeController {
    /**
     * forward:转发，在服务器端转发；
     *      /:当前webapp,服务器主目录
     *      /list.jsp:主目录下的list.jsp文件;
     * @return
     */
    @GetMapping("forward")
    public String forward(){
        return "forward:/list.jsp";
//        return "success";
    }

    @GetMapping("servletApi")
    public void servletApi(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //转发在服务器端的操作;
        request.getRequestDispatcher("list.jsp").forward(request,response);
    }


    /**
     * 使用场景；客户端登陆失败了；重新再发次登陆请求
     * @return
     */
    @GetMapping("redirect")
    public String redirect(){
        return "redirect:/list.jsp";
    }


    @GetMapping("sendRedirect")
    public void  sendRedirect(HttpServletResponse response) throws IOException {
        response.sendRedirect("list.jsp");
    }
}
